# 使用官方的 Golang 镜像作为基础镜像
FROM golang:1.23.2-alpine as builder

# 设置工作目录
WORKDIR /app

# 复制 Go 源码到容器内, dockerignore 排除
COPY . .

# 设置环境变量，指定 GOOS 和 GOARCH
ENV GOOS=linux
ENV GOARCH=amd64

# 构建 Go 二进制文件
RUN go build -o release/studyGoDemo server/*.go

# 使用一个轻量级的基础镜像来运行应用
FROM alpine:3.18

# 将编译好的二进制文件从 builder 阶段复制过来
COPY --from=builder /app/release/studyGoDemo /usr/local/bin/studyGoDemo
COPY --from=builder /app/etc /usr/local/bin/etc